import type { VNode, ComponentInternalInstance } from "vue";

export interface MessageProps {
    message?: string | VNode;
    duration?: number;
    showClose?: boolean;
    type?: 'success' | 'info' | 'warning' | 'error';
    destroy: () => void,
    offset?: number;
    id: string;
    zIndex: number;
    transitionName?:string;
}

// Message实例
export interface MessageInstanceProps {
    id: string;
    vnode: VNode;
    messageProps: MessageProps;
    vm: ComponentInternalInstance;
    destroy: () => void
}

export type MessagePropsOmit = Omit<MessageProps, 'destroy' | 'id' | 'zIndex'>